<?php
	require_once(dirname(__FILE__) . '/../simpletest/autorun.php');
	require_once('include.php');
	
	class UsuarioTest extends UnitTestCase {
		
		function testCriaModel(){
			$usuario = new Usuario("Guilherme");
			$this->assertEqual($usuario->nome, "Guilherme");
		}
		
	    function testCamposVazios() {
	    	$_POST = array(
	    	"nome" => "",
	    	"cpf" => "",
	    	"senha" => "",
	    	"confirma_senha" => "",
	    	"email" => "",
	    	"confirma_email" => ""
			);
	        $erros = ValidadorUsuario::usuario_inserir_validacao();
	        $this->assertTrue(!empty($erros));
	    }
		
		function testCamposErrados() {
	    	$_POST = array(
	    	"nome" => "",
	    	"cpf" => "dsiajosadi",
	    	"senha" => "",
	    	"confirma_senha" => "",
	    	"email" => "..aasssa@@???().com",
	    	"confirma_email" => "..aasssa@@???().com"
			);
	        $erros = ValidadorUsuario::usuario_inserir_validacao();
	        $this->assertTrue(!empty($erros));
	    }
		
		function testConfirmacaoCampos() {
	    	$_POST = array(
	    	"nome" => "",
	    	"cpf" => "",
	    	"senha" => "1234",
	    	"confirma_senha" => "4321",
	    	"email" => "email@gmail.com",
	    	"confirma_email" => "confirma_email@gmail.com"
			);
	        $erros = ValidadorUsuario::usuario_inserir_validacao();
	        $this->assertTrue(!empty($erros["confirma_senha"]));
	        $this->assertTrue(!empty($erros["confirma_email"]));
	    }
		
		function testCadastroEditarDeletar() {
			GLOBAL $usuario_id;
			
			$_POST = array(
	    	"nome" => "Guilherme Heynemann",
	    	"cpf" => "111.111.111-11",
	    	"senha" => "1234",
	    	"confirma_senha" => "1234",
	    	"email" => "guibruzzi@gmail.com",
	    	"confirma_email" => "guibruzzi@gmail.com"
			);
			$usuario_controller = new CRUDUsuarioController();
			
			$usuarios = $usuario_controller->listarUsuarios();
			$num_usuarios1 = count($usuarios);
			
			$sucesso_adicionar = $usuario_controller->adicionarUsuario(false);
			
			$this->assertTrue($sucesso_adicionar);
			
			$_GET["id"] = mysql_insert_id(); // Pega o último id inserido
			$usuario_id = $_GET["id"];
			$_POST = array(
	    	"nome" => "Guilherme Heynemann Bruzzi",
	    	"cpf" => "130.322.117-194",
	    	"email" => "guibruzzi@gmail.com",
	    	"confirma_email" => "guibruzzi@gmail.com"
			);
			$sucesso_editar = $usuario_controller->editarUsuario(false);
			
			$this->assertTrue($sucesso_editar);			
			
			$usuarios = $usuario_controller->listarUsuarios();
			$num_usuarios2 = count($usuarios);
			
			$this->assertEqual($num_usuarios1 + 1, $num_usuarios2);

			$sucesso_deletar = $usuario_controller->deletarUsuario(false);
			
			$this->assertTrue($sucesso_deletar);
			
			$usuarios = $usuario_controller->listarUsuarios();
			$num_usuarios3 = count($usuarios);
			
			$this->assertEqual($num_usuarios1, $num_usuarios3);
		}
		
	}
?>